1
Architecting for Concurrency: The Five-Question Framework
AI019 Lesson 9
00:00

Architecting for concurrency in Elixir transcends simple process spawning; it requires a rigorous methodology to achieve 99.9999999% reliability (nine nines). This equates to roughly 1 second of outage every 30 years. To reach this standard, we use the Five-Question Framework.

The Structural Heuristic

Before writing a single line of OTP code, use these questions to decompose stateful problems into manageable primitives:

  • Environment & Constraints: Is it a single node? A global cluster? What are the memory/IO limits?
  • Focal Points: Where does the data live? Who "owns" the state (e.g., a results ledger)?
  • Runtime Characteristics: How many concurrent requests? Are they CPU-bound or IO-bound?
  • Protection: Which state must survive? What can we afford to lose and restart?
  • Bootstrapping: How do we initialize the tree? Which services depend on others?
99.9999999%RELIABILITYENVIRONMENTFOCAL POINTSRUNTIMEPROTECTIONRUNNING

By treating these questions as constraints, you prevent the "Big Ball of Mud" concurrency where every process talks to every other process without clear hierarchies.

main.py
TERMINAL bash — 80x24
> Ready. Click "Run" to execute.
>